1
|
|
|
2
|
|
|
3
|
|
|
4
|
|
|
5
|
|
|
6
|
|
|
7
|
|
|
8
|
|
|
9
|
|
package bexee.core;
|
10
|
|
|
11
|
|
import java.util.Collection;
|
12
|
|
import java.util.Iterator;
|
13
|
|
import java.util.List;
|
14
|
|
import java.util.Map;
|
15
|
|
|
16
|
|
import javax.wsdl.Binding;
|
17
|
|
import javax.wsdl.Definition;
|
18
|
|
import javax.wsdl.Message;
|
19
|
|
import javax.wsdl.Operation;
|
20
|
|
import javax.wsdl.Part;
|
21
|
|
import javax.wsdl.Port;
|
22
|
|
import javax.wsdl.PortType;
|
23
|
|
import javax.wsdl.extensions.ExtensibilityElement;
|
24
|
|
import javax.wsdl.extensions.soap.SOAPAddress;
|
25
|
|
import javax.xml.namespace.QName;
|
26
|
|
import javax.xml.rpc.ParameterMode;
|
27
|
|
|
28
|
|
import org.apache.axis.Constants;
|
29
|
|
import org.apache.axis.client.Call;
|
30
|
|
import org.apache.axis.client.Service;
|
31
|
|
import org.apache.commons.logging.Log;
|
32
|
|
import org.apache.commons.logging.LogFactory;
|
33
|
|
|
34
|
|
import bexee.event.Event;
|
35
|
|
import bexee.model.activity.Activity;
|
36
|
|
import bexee.model.activity.Assign;
|
37
|
|
import bexee.model.activity.Compensate;
|
38
|
|
import bexee.model.activity.Empty;
|
39
|
|
import bexee.model.activity.Flow;
|
40
|
|
import bexee.model.activity.Invoke;
|
41
|
|
import bexee.model.activity.Receive;
|
42
|
|
import bexee.model.activity.Reply;
|
43
|
|
import bexee.model.activity.Sequence;
|
44
|
|
import bexee.model.activity.Switch;
|
45
|
|
import bexee.model.elements.BpelCase;
|
46
|
|
import bexee.model.elements.Copy;
|
47
|
|
import bexee.model.elements.Correlation;
|
48
|
|
import bexee.model.elements.CorrelationPattern;
|
49
|
|
import bexee.model.elements.From;
|
50
|
|
import bexee.model.elements.Link;
|
51
|
|
import bexee.model.elements.PartnerLink;
|
52
|
|
import bexee.model.elements.PartnerLinks;
|
53
|
|
import bexee.model.elements.To;
|
54
|
|
import bexee.model.elements.Variable;
|
55
|
|
import bexee.model.elements.Variables;
|
56
|
|
import bexee.model.process.BPELProcess;
|
57
|
|
import bexee.model.process.Process;
|
58
|
|
|
59
|
|
|
60
|
|
|
61
|
|
|
62
|
|
|
63
|
|
|
64
|
|
|
65
|
|
|
66
|
|
public class ProcessControllerImpl implements ProcessController {
|
67
|
|
|
68
|
|
private static Log log = LogFactory.getLog(ProcessControllerImpl.class);
|
69
|
|
|
70
|
|
|
71
|
|
|
72
|
|
|
73
|
|
|
74
|
4
|
public void processMessage(ProcessInstance instance, BexeeMessage message) {
|
75
|
|
|
76
|
4
|
log.info("Processing a ProcessInstance");
|
77
|
|
|
78
|
|
|
79
|
|
|
80
|
4
|
ProcessContext ctx = instance.getContext();
|
81
|
4
|
BPELProcess process = instance.getProcess();
|
82
|
|
|
83
|
4
|
ctx.setMessage(message);
|
84
|
|
|
85
|
|
|
86
|
4
|
try {
|
87
|
4
|
process.getProcess().accept(this, instance);
|
88
|
|
} catch (AwaitMessageException e) {
|
89
|
0
|
e.printStackTrace();
|
90
|
|
} catch (Exception e) {
|
91
|
0
|
e.printStackTrace();
|
92
|
|
}
|
93
|
|
}
|
94
|
|
|
95
|
|
|
96
|
|
|
97
|
|
|
98
|
|
|
99
|
4
|
public void process(Process process, ProcessInstance instance)
|
100
|
|
throws Exception {
|
101
|
|
|
102
|
4
|
log.info("Processing a Process");
|
103
|
|
|
104
|
|
|
105
|
4
|
Variables variables = process.getVariables();
|
106
|
4
|
if (variables != null) {
|
107
|
4
|
variables.accept(this, instance);
|
108
|
|
}
|
109
|
|
|
110
|
4
|
PartnerLinks partnerLinks = process.getPartnerLinks();
|
111
|
4
|
if (partnerLinks != null) {
|
112
|
4
|
partnerLinks.accept(this, instance);
|
113
|
|
}
|
114
|
|
|
115
|
4
|
Activity activity = process.getActivity();
|
116
|
|
|
117
|
4
|
if (activity != null) {
|
118
|
4
|
activity.accept(this, instance);
|
119
|
|
} else {
|
120
|
0
|
throw new MissingActivityException();
|
121
|
|
}
|
122
|
|
}
|
123
|
|
|
124
|
|
|
125
|
|
|
126
|
|
|
127
|
|
|
128
|
4
|
public void process(Sequence sequence, ProcessInstance instance)
|
129
|
|
throws Exception {
|
130
|
|
|
131
|
4
|
log(sequence);
|
132
|
|
|
133
|
|
|
134
|
4
|
List activities = sequence.getActivities();
|
135
|
4
|
for (Iterator iter = activities.iterator(); iter.hasNext();) {
|
136
|
18
|
Activity activity = (Activity) iter.next();
|
137
|
18
|
activity.accept(this, instance);
|
138
|
|
}
|
139
|
|
}
|
140
|
|
|
141
|
|
|
142
|
|
|
143
|
|
|
144
|
|
|
145
|
|
|
146
|
|
|
147
|
|
|
148
|
4
|
public void process(Flow flow, ProcessInstance instance) throws Exception {
|
149
|
|
|
150
|
4
|
log(flow);
|
151
|
|
|
152
|
4
|
List activities = flow.getActivities();
|
153
|
4
|
int activitiesCount = activities.size();
|
154
|
4
|
Thread[] flowThreads = new Thread[activitiesCount];
|
155
|
|
|
156
|
|
|
157
|
|
|
158
|
|
|
159
|
4
|
for (int i = 0; i < activitiesCount; i++) {
|
160
|
8
|
Activity activity = (Activity) activities.get(i);
|
161
|
8
|
flowThreads[i] = new FlowThread(this, instance, activity);
|
162
|
8
|
flowThreads[i].start();
|
163
|
|
}
|
164
|
|
|
165
|
|
|
166
|
4
|
for (int i = 0; i < flowThreads.length; i++) {
|
167
|
8
|
flowThreads[i].join();
|
168
|
|
}
|
169
|
|
|
170
|
|
|
171
|
|
|
172
|
|
|
173
|
|
|
174
|
|
|
175
|
|
|
176
|
|
}
|
177
|
|
|
178
|
|
|
179
|
|
|
180
|
|
|
181
|
|
|
182
|
|
|
183
|
0
|
public void process(Switch bpelSwitch, ProcessInstance instance)
|
184
|
|
throws Exception {
|
185
|
|
|
186
|
0
|
List bpelCases = bpelSwitch.getCases();
|
187
|
0
|
for (Iterator iter = bpelCases.iterator(); iter.hasNext();) {
|
188
|
0
|
BpelCase bpelCase = (BpelCase) iter.next();
|
189
|
0
|
if (bpelCase.getBooleanExpression().evaluate()) {
|
190
|
0
|
bpelCase.getCaseActivity().accept(this, instance);
|
191
|
0
|
return;
|
192
|
|
}
|
193
|
|
}
|
194
|
|
|
195
|
0
|
Activity otherwise = bpelSwitch.getOtherwise();
|
196
|
0
|
if (otherwise != null) {
|
197
|
0
|
otherwise.accept(this, instance);
|
198
|
|
}
|
199
|
|
}
|
200
|
|
|
201
|
|
|
202
|
|
|
203
|
|
|
204
|
|
|
205
|
4
|
public void process(Receive receive, ProcessInstance instance)
|
206
|
|
throws AwaitMessageException {
|
207
|
|
|
208
|
4
|
log(receive);
|
209
|
|
|
210
|
|
|
211
|
4
|
ProcessContext ctx = instance.getContext();
|
212
|
4
|
BPELProcess process = instance.getProcess();
|
213
|
|
|
214
|
4
|
Event event = ctx.getEvent(receive);
|
215
|
4
|
if (event == null) {
|
216
|
|
|
217
|
4
|
BexeeMessage message = ctx.removeMessage();
|
218
|
|
|
219
|
4
|
if (message == null) {
|
220
|
0
|
throw new AwaitMessageException(receive);
|
221
|
|
} else {
|
222
|
4
|
event = new Event(receive);
|
223
|
|
|
224
|
|
|
225
|
4
|
Variable var = receive.getVariable();
|
226
|
4
|
ctx.setVariable(var, message.getParts());
|
227
|
|
|
228
|
4
|
ctx.addEvent(event);
|
229
|
|
}
|
230
|
|
}
|
231
|
|
}
|
232
|
|
|
233
|
6
|
public void process(Assign assign, ProcessInstance instance)
|
234
|
|
throws Exception {
|
235
|
|
|
236
|
6
|
log(assign);
|
237
|
|
|
238
|
6
|
BPELProcess process = instance.getProcess();
|
239
|
6
|
ProcessContext ctx = instance.getContext();
|
240
|
|
|
241
|
6
|
Event event = ctx.getEvent(assign);
|
242
|
6
|
if (event == null) {
|
243
|
|
|
244
|
|
|
245
|
6
|
event = new Event(assign);
|
246
|
|
|
247
|
|
|
248
|
6
|
Copy copy = assign.getCopy();
|
249
|
|
|
250
|
|
|
251
|
6
|
From from = copy.getFrom();
|
252
|
6
|
Variable fromVar = from.getVariable();
|
253
|
6
|
String fromVarPart = from.getPart();
|
254
|
|
|
255
|
|
|
256
|
6
|
To to = copy.getTo();
|
257
|
6
|
Variable toVar = to.getVariable();
|
258
|
6
|
String toVarPart = to.getPart();
|
259
|
|
|
260
|
|
|
261
|
6
|
Object variablePart = ctx.getVariablePart(fromVar, fromVarPart);
|
262
|
|
|
263
|
|
|
264
|
|
|
265
|
6
|
String responseString = "";
|
266
|
|
|
267
|
6
|
if (assign.getName() != null
|
268
|
|
&& assign.getName().indexOf("Response") != -1) {
|
269
|
2
|
Collection varIds = ctx.getVariablesIdentifiers();
|
270
|
2
|
for (Iterator iter = varIds.iterator(); iter.hasNext();) {
|
271
|
6
|
Variable variable = (Variable) iter.next();
|
272
|
6
|
Collection parts = ctx.getVariable(variable).values();
|
273
|
6
|
for (Iterator iterator = parts.iterator(); iterator
|
274
|
|
.hasNext();) {
|
275
|
6
|
Object element = (Object) iterator.next();
|
276
|
6
|
if (element != null) {
|
277
|
6
|
responseString += "} {" + element.toString();
|
278
|
|
}
|
279
|
|
}
|
280
|
|
}
|
281
|
2
|
variablePart = responseString;
|
282
|
|
}
|
283
|
|
|
284
|
6
|
ctx.setVariablePart(toVar, toVarPart, variablePart);
|
285
|
6
|
ctx.addEvent(event);
|
286
|
|
}
|
287
|
|
}
|
288
|
|
|
289
|
8
|
public void process(Invoke invoke, ProcessInstance instance)
|
290
|
|
throws Exception {
|
291
|
|
|
292
|
8
|
log(invoke);
|
293
|
|
|
294
|
|
|
295
|
|
|
296
|
8
|
ProcessContext ctx = instance.getContext();
|
297
|
8
|
BPELProcess process = instance.getProcess();
|
298
|
|
|
299
|
8
|
Event event = ctx.getEvent(invoke);
|
300
|
8
|
if (event == null) {
|
301
|
|
|
302
|
|
|
303
|
8
|
event = new Event(invoke);
|
304
|
|
|
305
|
|
|
306
|
8
|
Variable inVar = invoke.getInputVariable();
|
307
|
8
|
Map inVarParts = ctx.getVariable(inVar);
|
308
|
8
|
Object[] variablePartsAsArray = inVarParts.values().toArray();
|
309
|
|
|
310
|
|
|
311
|
8
|
Variable outVar = invoke.getOutputVariable();
|
312
|
8
|
Map outVarParts = ctx.getVariable(outVar);
|
313
|
|
|
314
|
|
|
315
|
8
|
String operationName = invoke.getOperation();
|
316
|
8
|
QName portTypeName = invoke.getPortType();
|
317
|
|
|
318
|
|
|
319
|
8
|
Definition definition = findWSDL(portTypeName, process);
|
320
|
8
|
PortType portType = definition.getPortType(portTypeName);
|
321
|
8
|
Operation operationType = portType.getOperation(operationName,
|
322
|
|
null, null);
|
323
|
8
|
Message inMessage = operationType.getInput().getMessage();
|
324
|
8
|
Object[] messageParts = inMessage.getParts().values().toArray();
|
325
|
|
|
326
|
8
|
Binding binding = findBinding(definition, portTypeName);
|
327
|
8
|
Port port = findPort(definition, binding);
|
328
|
8
|
SOAPAddress soapAddress = findSOAPAddress(port);
|
329
|
|
|
330
|
|
|
331
|
8
|
Service service = new Service();
|
332
|
8
|
Call call = (Call) service.createCall();
|
333
|
8
|
call.setTargetEndpointAddress(soapAddress.getLocationURI());
|
334
|
8
|
call.setPortName(invoke.getPortType());
|
335
|
8
|
call.setOperationName(invoke.getOperation());
|
336
|
|
|
337
|
|
|
338
|
8
|
for (int i = 0; i < messageParts.length; i++) {
|
339
|
8
|
Part messagePart = (Part) messageParts[i];
|
340
|
8
|
call.addParameter(messagePart.getName(), messagePart
|
341
|
|
.getTypeName(), ParameterMode.IN);
|
342
|
|
}
|
343
|
8
|
call.setReturnType(Constants.XSD_STRING);
|
344
|
|
|
345
|
|
|
346
|
8
|
Object result = null;
|
347
|
|
|
348
|
|
|
349
|
8
|
if (invoke.isSynchronous()) {
|
350
|
8
|
result = call.invoke(variablePartsAsArray);
|
351
|
|
}
|
352
|
|
|
353
|
|
else {
|
354
|
|
|
355
|
|
}
|
356
|
|
|
357
|
|
|
358
|
0
|
Variable variable = invoke.getOutputVariable();
|
359
|
0
|
Message outMessage = operationType.getOutput().getMessage();
|
360
|
0
|
Object[] outparts = outMessage.getParts().values().toArray();
|
361
|
0
|
for (int i = 0; i < outparts.length; i++) {
|
362
|
0
|
Part messagePart = (Part) messageParts[i];
|
363
|
0
|
ctx.setVariablePart(variable, messagePart.getName(), result);
|
364
|
|
}
|
365
|
|
|
366
|
0
|
ctx.addEvent(event);
|
367
|
|
}
|
368
|
|
}
|
369
|
|
|
370
|
8
|
private Definition findWSDL(QName portTypeName, BPELProcess process) {
|
371
|
|
|
372
|
8
|
Definition definition = null;
|
373
|
8
|
Binding binding = null;
|
374
|
|
|
375
|
|
|
376
|
|
|
377
|
8
|
Collection wsdlCollection = process.getPartnerWSDL();
|
378
|
8
|
mainloop: for (Iterator iter = wsdlCollection.iterator(); iter
|
379
|
|
.hasNext();) {
|
380
|
8
|
definition = (Definition) iter.next();
|
381
|
8
|
Collection bindings = definition.getBindings().values();
|
382
|
8
|
for (Iterator iterator = bindings.iterator(); iterator.hasNext();) {
|
383
|
8
|
binding = (Binding) iterator.next();
|
384
|
8
|
if (binding.getPortType().getQName().equals(portTypeName)) {
|
385
|
8
|
break mainloop;
|
386
|
|
}
|
387
|
|
}
|
388
|
|
}
|
389
|
8
|
return definition;
|
390
|
|
}
|
391
|
|
|
392
|
8
|
private Binding findBinding(Definition definition, QName portTypeName) {
|
393
|
|
|
394
|
8
|
Binding binding = null;
|
395
|
|
|
396
|
8
|
Collection bindings = definition.getBindings().values();
|
397
|
8
|
for (Iterator iterator = bindings.iterator(); iterator.hasNext();) {
|
398
|
8
|
binding = (Binding) iterator.next();
|
399
|
8
|
if (binding.getPortType().getQName().equals(portTypeName)) {
|
400
|
8
|
break;
|
401
|
|
}
|
402
|
|
}
|
403
|
8
|
return binding;
|
404
|
|
}
|
405
|
|
|
406
|
8
|
private Port findPort(Definition definition, Binding binding) {
|
407
|
|
|
408
|
8
|
Port port = null;
|
409
|
|
|
410
|
8
|
Collection services = definition.getServices().values();
|
411
|
8
|
for (Iterator iterator = services.iterator(); iterator.hasNext();) {
|
412
|
8
|
javax.wsdl.Service service = (javax.wsdl.Service) iterator.next();
|
413
|
8
|
Collection portTypes = service.getPorts().values();
|
414
|
8
|
for (Iterator iter2 = portTypes.iterator(); iter2.hasNext();) {
|
415
|
8
|
port = (Port) iter2.next();
|
416
|
8
|
if (port.getBinding().equals(binding)) {
|
417
|
8
|
break;
|
418
|
|
}
|
419
|
|
}
|
420
|
|
}
|
421
|
8
|
return port;
|
422
|
|
}
|
423
|
|
|
424
|
8
|
private SOAPAddress findSOAPAddress(Port port) {
|
425
|
|
|
426
|
8
|
SOAPAddress soapAddress = null;
|
427
|
|
|
428
|
|
|
429
|
|
|
430
|
8
|
Collection extElems = port.getExtensibilityElements();
|
431
|
8
|
for (Iterator iter = extElems.iterator(); iter.hasNext();) {
|
432
|
8
|
ExtensibilityElement element = (ExtensibilityElement) iter.next();
|
433
|
8
|
if (element instanceof SOAPAddress) {
|
434
|
8
|
soapAddress = (SOAPAddress) element;
|
435
|
8
|
break;
|
436
|
|
}
|
437
|
|
}
|
438
|
8
|
return soapAddress;
|
439
|
|
}
|
440
|
|
|
441
|
0
|
private String findPortLocation(QName portTypeName, BPELProcess process) {
|
442
|
|
|
443
|
0
|
Binding binding = null;
|
444
|
0
|
SOAPAddress soapAddress = null;
|
445
|
0
|
Port port = null;
|
446
|
|
|
447
|
|
|
448
|
|
|
449
|
0
|
Collection wsdlCollection = process.getPartnerWSDL();
|
450
|
0
|
mainloop: for (Iterator iter = wsdlCollection.iterator(); iter
|
451
|
|
.hasNext();) {
|
452
|
0
|
Definition defn = (Definition) iter.next();
|
453
|
0
|
Collection bindings = defn.getBindings().values();
|
454
|
0
|
for (Iterator iterator = bindings.iterator(); iterator.hasNext();) {
|
455
|
0
|
binding = (Binding) iterator.next();
|
456
|
0
|
if (binding.getPortType().getQName().equals(portTypeName)) {
|
457
|
0
|
break mainloop;
|
458
|
|
}
|
459
|
|
}
|
460
|
|
}
|
461
|
|
|
462
|
|
|
463
|
|
|
464
|
0
|
mainloop: for (Iterator iter = wsdlCollection.iterator(); iter
|
465
|
|
.hasNext();) {
|
466
|
0
|
Definition defn = (Definition) iter.next();
|
467
|
0
|
Collection services = defn.getServices().values();
|
468
|
0
|
for (Iterator iterator = services.iterator(); iterator.hasNext();) {
|
469
|
0
|
javax.wsdl.Service service = (javax.wsdl.Service) iterator
|
470
|
|
.next();
|
471
|
0
|
Collection portTypes = service.getPorts().values();
|
472
|
0
|
for (Iterator iter2 = portTypes.iterator(); iter2.hasNext();) {
|
473
|
0
|
port = (Port) iter2.next();
|
474
|
0
|
if (port.getBinding().equals(binding)) {
|
475
|
0
|
break mainloop;
|
476
|
|
}
|
477
|
|
}
|
478
|
|
}
|
479
|
|
}
|
480
|
|
|
481
|
|
|
482
|
|
|
483
|
0
|
if (port != null) {
|
484
|
0
|
Collection extElems = port.getExtensibilityElements();
|
485
|
0
|
for (Iterator iter = extElems.iterator(); iter.hasNext();) {
|
486
|
0
|
ExtensibilityElement element = (ExtensibilityElement) iter
|
487
|
|
.next();
|
488
|
0
|
if (element instanceof SOAPAddress) {
|
489
|
0
|
soapAddress = (SOAPAddress) element;
|
490
|
0
|
break;
|
491
|
|
}
|
492
|
|
}
|
493
|
0
|
return soapAddress.getLocationURI();
|
494
|
|
}
|
495
|
|
|
496
|
|
|
497
|
|
|
498
|
0
|
return null;
|
499
|
|
}
|
500
|
|
|
501
|
4
|
public void process(Reply reply, ProcessInstance instance) throws Exception {
|
502
|
|
|
503
|
4
|
log(reply);
|
504
|
|
|
505
|
4
|
BPELProcess process = instance.getProcess();
|
506
|
4
|
ProcessContext ctx = instance.getContext();
|
507
|
|
|
508
|
4
|
Event event = ctx.getEvent(reply);
|
509
|
4
|
if (event == null) {
|
510
|
|
|
511
|
4
|
event = new Event(reply);
|
512
|
|
|
513
|
|
|
514
|
4
|
Variable variable = reply.getVariable();
|
515
|
4
|
Map parts = ctx.getVariable(variable);
|
516
|
|
|
517
|
|
|
518
|
4
|
Object result = parts.values().iterator().next();
|
519
|
4
|
ctx.setResult(result);
|
520
|
|
|
521
|
4
|
ctx.addEvent(event);
|
522
|
|
}
|
523
|
|
}
|
524
|
|
|
525
|
0
|
public void process(Empty empty, ProcessInstance instance) {
|
526
|
|
|
527
|
0
|
log(empty);
|
528
|
|
|
529
|
0
|
BPELProcess process = instance.getProcess();
|
530
|
0
|
ProcessContext ctx = instance.getContext();
|
531
|
|
|
532
|
0
|
Event event = ctx.getEvent(empty);
|
533
|
0
|
if (event == null) {
|
534
|
0
|
event = new Event(empty);
|
535
|
|
|
536
|
|
|
537
|
|
|
538
|
|
|
539
|
|
|
540
|
0
|
ctx.addEvent(event);
|
541
|
|
}
|
542
|
|
}
|
543
|
|
|
544
|
|
|
545
|
|
|
546
|
|
|
547
|
0
|
public void process(Activity activity, ProcessInstance instance) {
|
548
|
0
|
log(activity);
|
549
|
0
|
BPELProcess process = instance.getProcess();
|
550
|
0
|
ProcessContext ctx = instance.getContext();
|
551
|
0
|
Event event = ctx.getEvent(activity);
|
552
|
0
|
if (event == null) {
|
553
|
0
|
event = new Event(activity);
|
554
|
0
|
ctx.addEvent(event);
|
555
|
|
}
|
556
|
|
}
|
557
|
|
|
558
|
|
|
559
|
|
|
560
|
|
|
561
|
|
|
562
|
4
|
public void process(Variables variables, ProcessInstance instance)
|
563
|
|
throws Exception {
|
564
|
|
|
565
|
4
|
log.info("Processing Variables");
|
566
|
|
|
567
|
|
|
568
|
4
|
List list = variables.getVariables();
|
569
|
4
|
for (Iterator iter = list.iterator(); iter.hasNext();) {
|
570
|
22
|
Variable variable = (Variable) iter.next();
|
571
|
22
|
variable.accept(this, instance);
|
572
|
|
}
|
573
|
|
}
|
574
|
|
|
575
|
22
|
public void process(Variable variable, ProcessInstance instance) {
|
576
|
22
|
log.info("Processing a Variable: " + variable.getName());
|
577
|
|
}
|
578
|
|
|
579
|
4
|
public void process(PartnerLinks partnerLinks, ProcessInstance instance)
|
580
|
|
throws Exception {
|
581
|
|
|
582
|
4
|
log.info("Processing PartnerLinks");
|
583
|
|
|
584
|
|
|
585
|
4
|
List list = partnerLinks.getPartnerLinks();
|
586
|
4
|
for (Iterator iter = list.iterator(); iter.hasNext();) {
|
587
|
14
|
PartnerLink partnerLink = (PartnerLink) iter.next();
|
588
|
14
|
partnerLink.accept(this, instance);
|
589
|
|
}
|
590
|
|
}
|
591
|
|
|
592
|
14
|
public void process(PartnerLink partnerLink, ProcessInstance instance) {
|
593
|
14
|
log.info("Processing a PartnerLink: " + partnerLink.getName());
|
594
|
|
}
|
595
|
|
|
596
|
|
|
597
|
|
|
598
|
|
|
599
|
|
|
600
|
0
|
public void process(Link link, ProcessInstance instance) {
|
601
|
|
}
|
602
|
|
|
603
|
0
|
public void process(Compensate impl, ProcessInstance instance) {
|
604
|
|
}
|
605
|
|
|
606
|
0
|
public void process(Correlation correlation, ProcessInstance instance) {
|
607
|
|
}
|
608
|
|
|
609
|
0
|
public void process(CorrelationPattern correlationPattern,
|
610
|
|
ProcessInstance instance) {
|
611
|
|
}
|
612
|
|
|
613
|
|
|
614
|
|
|
615
|
|
|
616
|
|
|
617
|
0
|
private Receive matchMessage(BexeeMessage message, List receives) {
|
618
|
|
|
619
|
0
|
return (Receive) receives.get(0);
|
620
|
|
}
|
621
|
|
|
622
|
30
|
private void log(Activity activity) {
|
623
|
30
|
if (activity != null) {
|
624
|
30
|
log.info("Processing " + activity.getClass().getName() + " name: "
|
625
|
|
+ activity.getName());
|
626
|
|
} else {
|
627
|
0
|
log.info("Processing null activity");
|
628
|
|
}
|
629
|
|
}
|
630
|
|
|
631
|
0
|
public void process(Copy copy, ProcessInstance instance) throws Exception {
|
632
|
|
}
|
633
|
|
|
634
|
|
}
|